package com.res.share.service;

import com.res.share.model.ResMessage;
import com.res.share.model.ResUser;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author astupidcoder
 * @since 2021-09-13
 */
public interface IResUserService extends IService<ResUser> {

    /**
     * 查询登录用户信息
     * @return
     * @param request
     * @param response
     */
    ResUser findCurrentUserDetails(HttpServletRequest request, HttpServletResponse response);

    ResUser findUserDetail(String userName);

    ResUser checkUserExits(String info,Integer type);

    int insertUser(ResUser saveUserModel);

    /**
     *
     * @param userId
     * @return
     */
    ResUser findCurrentUserInfo(Integer userId);

    /**
     * 更新邮箱
     * @param userId
     * @param userEmail
     */
    void updateUserEmail(Integer userId, String userEmail);

    /**
     * 修改密码
     * @param password
     * @param userId
     */
    void updateUserPassword(String password, Integer userId);

    /**
     *
     * @param userId
     */
    Integer userSign(Integer userId);

    /**
     * 更新人气
     * @param beLongUserId
     */
    void updateUserMoodsById(Integer beLongUserId);

    /**
     * 更新图片
     * @param userImage
     * @param userId
     */
    void updateUserImage(String userImage, Integer userId);

    /**
     *
     * @param sendUserId 发送者
     * @param receiveId 接收者
     * @param content 内容
     * @param title 标题
     * @param type 消息类型
     */
    void addMessage(Integer sendUserId, Integer receiveId, String content, String title, Integer type);


    /**
     * 删除邮件
     * @param collect
     * @param userId
     * @param type
     */
    void delMessageNotify(List<String> collect, Integer userId,Integer type);

    /**
     * 读取信息
     * @param id
     * @param type
     * @param userId
     * @return
     */
    ResMessage findMessageByNotifyId(Integer id, Integer type,Integer userId);
}
